package main

import (
	"fmt"
	"unsafe"
)

// 72
type memAlign struct {
	a byte     // 1
	b int      // 8
	c byte     // 1
	d string   //16
	e byte     //1
	f []string // 24
}

// 56
//type memAlign struct {
//	f []string // Sizeof: 24 Alignof: 8 Offsetof: 0
//	d string   // Sizeof: 16 Alignof: 8 Offsetof: 24
//	b int      // Sizeof: 8  Alignof: 8 Offsetof: 40
//	a byte     // Sizeof: 1  Alignof: 1 Offsetof: 48
//	c byte     // Sizeof: 1  Alignof: 1 Offsetof: 49
//	e byte     // Sizeof: 1  Alignof: 1 Offsetof: 50
//}

// structlayout -json ./main.go memAlign | structlayout-svg -t "user" > memAlign.svg
func main() {
	var m memAlign
	//var s [37]byte

	fmt.Println(unsafe.Sizeof(m))
	fmt.Println(unsafe.Offsetof(m.f))
}
